home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Information / Digests / CSMP Digest / volume 3 / csmp-digest-v3-053 / doubleCR.1 < prev   
Encoding:
Text File  |  1995-12-31  |  79.3 KB  |  2,269 lines

  1. --------------------
  2. Archive.sit    2K
  3. Archive.sit    2K
  4. --------------------
  5.  
  6. C.S.M.P. Digest             Mon, 05 Sep 94       Volume 3 : Issue 53
  7.  
  8. Today's Topics:
  9.  
  10.         A real funny story
  11.         AppleScript: event times out
  12.         C++ Virtual Destructor Q
  13.         Enum size -- what's the LCD?
  14.         Followup on 'Safe Save' problem - still ticking!
  15.         MW DebugNew Tip
  16.         Scrollbars in Dialogs?
  17.         Should new programs still be System 6 compatible?
  18.         The System 7.5 Think Debugger Bug - and fix!
  19.         Think Debugger & INIT source code
  20.         [Q] How to do non-bypassable INIT?
  21.         malloc problem in CW-4
  22.  
  23.  
  24.  
  25. The Comp.Sys.Mac.Programmer Digest is moderated by Francois Pottier
  26. (pottier@clipper.ens.fr).
  27.  
  28. The digest is a collection of article threads from the internet newsgroup
  29. comp.sys.mac.programmer.  It is designed for people who read c.s.m.p. semi-
  30. regularly and want an archive of the discussions.  If you don't know what a
  31. newsgroup is, you probably don't have access to it.  Ask your systems
  32. administrator(s) for details.  If you don't have access to news, you may
  33. still be able to post messages to the group by using a mail server like
  34. anon.penet.fi (mail help@anon.penet.fi for more information).
  35.  
  36. Each issue of the digest contains one or more sets of articles (called
  37. threads), with each set corresponding to a 'discussion' of a particular
  38. subject.  The articles are not edited; all articles included in this digest
  39. are in their original posted form (as received by our news server at
  40. nef.ens.fr).  Article threads are not added to the digest until the last
  41. article added to the thread is at least two weeks old (this is to ensure that
  42. the thread is dead before adding it to the digest).  Article threads that
  43. consist of only one message are generally not included in the digest.
  44.  
  45. The digest is officially distributed by two means, by email and ftp.
  46.  
  47. If you want to receive the digest by mail, send email to listserv@ens.fr
  48. with no subject and one of the following commands as body:
  49.     help                        Sends you a summary of commands
  50.     subscribe csmp-digest Your Name    Adds you to the mailing list
  51.     signoff csmp-digest            Removes you from the list
  52. Once you have subscribed, you will automatically receive each new
  53. issue as it is created.
  54.  
  55. The official ftp info is //ftp.dartmouth.edu/pub/csmp-digest.
  56. Questions related to the ftp site should be directed to
  57. scott.silver@dartmouth.edu. Currently no previous volumes of the CSMP
  58. digest are available there.
  59.  
  60. Also, the digests are available to WAIS users.  To search back issues
  61. with WAIS, use comp.sys.mac.programmer.src. With Mosaic, use
  62. http://www.wais.com/wais-dbs/comp.sys.mac.programmer.html.
  63.  
  64.  
  65. -------------------------------------------------------
  66.  
  67. >From nick+@pitt.edu ( nick.c )
  68. Subject: A real funny story
  69. Date: Fri, 19 Aug 94 21:40:04 GMT
  70. Organization: The Pitt, Chemistry
  71.  
  72.  
  73. Folks:
  74.  
  75.     A friend of mine just sent me this, personally I think it's
  76.       hilarious (so long as you don't work for MS :-).  Enjoy,
  77.  
  78.  
  79. - --
  80.  
  81.  
  82. "Star Trek Lost Episodes" transcript.
  83.  
  84. <Picard> "Mr. LaForge, have you had any success with your
  85. attempts at finding a weakness with the Borg?  And Mr. Data,
  86. have you been able to access their command pathways?"
  87.  
  88. <Geordi> "Yes, Captain.  In fact, we found the answer by
  89. searching through our archives on late twentieth-century
  90. computing technology."
  91.  
  92. <Geordi presses a key, and a logo appears on the computer
  93. screen.>
  94.  
  95. <Riker looks puzzled.> "What the hell is 'Microsoft'?"
  96.  
  97. <Data turns to answer.> "Allow me to explain.  We will send
  98. this program, for some reason called 'Windows,' through
  99. the Borg command pathways.  Once inside their root com-
  100. mand unit, it will begin consuming system resources at an
  101. unstoppable rate."
  102.  
  103. <Picard> "But the Borg have the ability to adapt.  Won't
  104. they alter their processing systems to increase their storage
  105. capacity?"
  106.  
  107. <Data> "Yes, Captain.  But when 'Windows' detects this, it
  108. will create a new version of itself called an 'upgrade.'  The
  109. use of resources increases exponentially with each iteration.
  110. The Borg will not be able to adapt quickly enough.
  111. Eventually all of their processing ability will be taken over
  112. and none will be available for their normal operational
  113. functions."
  114.  
  115. <Picard> "Excellent work.  This is even better than that
  116. 'unsolvable geometric shape' idea."
  117.  
  118. <. . . 15 minutes later . . .>
  119.  
  120. <Data> "Captain, we have successfully installed the
  121. 'Windows' in the command unit and, as expected, it
  122. immediately consumed 85% of all resources.  We, however,
  123. have not received any confirmation of the expected
  124. 'upgrade.'"
  125.  
  126. <Geordi> "Our scanners have picked up an increase in Borg
  127. storage and CPU capacity to compensate, but we still have no
  128. indication of an 'upgrade' to compensate for their increase."
  129.  
  130. <Picard> "Data, scan the history books again and determine
  131. if there is something we have missed."
  132.  
  133. <Data> "Sir, I believe there is a reason for the failure in the
  134. 'upgrade.'  Apparently the Borg have circumvented that part
  135. of the plan by not sending in their 'registration cards.'"
  136.  
  137. <Riker>  "Captain, we have no choice.  Requesting
  138. permission to begin emergency escape sequence 3F . . ."
  139.  
  140. <Geordi, excited>  "Wait, Captain, I just detected that their
  141. CPU capacity has suddenly dropped to 0%!"
  142.  
  143. <Picard> "Data, what do your scanners show?"
  144.  
  145. <Data> "Apparently the Borg have found the internal
  146. 'Windows' module named 'solitaire' and it has used up all
  147. the CPU capacity."
  148.  
  149. <Picard> "Let's wait and see how long this 'solitaire' can
  150. reduce their functionality."
  151.  
  152. <. . . Two hours pass . . .>
  153.  
  154. <Riker> "Geordi, what's the status of the Borg?"
  155.  
  156. <Geordi> "As expected the Borg are attempting to re-
  157. engineer to compensate for increased CPU and storage
  158. demands, but each time they successfully increase resources
  159. I have set up our closest deep space monitor beacon to
  160. transmit more 'Windows' modules from something called
  161. the 'Microsoft fun-pack.'"
  162.  
  163. <Picard> "How much time will that buy us?"
  164.  
  165. <Data> "Current Borg solution rates allow me to predict an
  166. interest time span of 6 more hours."
  167.  
  168. <Geordi> "Captain, another vessel has entered our sector."
  169.  
  170. <Picard> "Identify."
  171.  
  172. <Data> "It appears to have markings similar to the
  173. 'Microsoft' logo."
  174.  
  175. <Over the speakers> "THIS IS ADMIRAL BILL GATES
  176. OF THE MICROSOFT FLAGSHIP MONOPOLY.  WE
  177. HAVE POSITIVE CONFIRMATION OF UN-
  178. REGISTERED SOFTWARE IN THIS SECTOR.
  179. SURRENDER ALL ASSETS AND WE CAN AVOID ANY
  180. TROUBLE.  YOU HAVE TEN SECONDS."
  181.  
  182. <Data> "The alien ship has just opened its forward hatches
  183. and released thousands of humanoid shaped objects."
  184.  
  185. <Picard> "Magnify forward viewer on the alien craft."
  186.  
  187. <Riker> "Good God Captain!  Those are humans floating
  188. straight toward the Borg ship with no life support suits!
  189. How can they survive the tortures of deep space?!"
  190.  
  191. <Data> "I do not believe that those are humans sir; if you will
  192. look closer, I believe you will see that they are carrying
  193. something recognized in the twenty-first century as doe-skin
  194. leather briefcases, and wearing Armani suits."
  195.  
  196. <Riker and Picard together horrified> "Lawyers!!"
  197.  
  198. <Geordi> "It can't be.  All the lawyers were rounded up and
  199. sent hurtling into the sun in 2017 during the great awaken-
  200. ing."
  201.  
  202. <Data> "True, but apparently some must have survived."
  203.  
  204. <Riker> "They have surrounded the Borg ship and are
  205. covering it with all types of papers."
  206.  
  207. <Data> "I believe that is known in ancient vernacular as 'red
  208. tape.'  It often proves fatal.
  209.  
  210. <Riker> "They're tearing the Borg to pieces!"
  211.  
  212. <Picard> "Turn off the monitors.  I can't stand to watch.  Not
  213. even the Borg deserve that."
  214.  
  215.  
  216.  
  217.   Disclaimer: Just my opinion.
  218.                                     _/   _/  _/  _/_/_/   _/   _/  
  219.      Interet: nick@pitt.edu        _/_/ _/  _/  _/   _/  _/_/_/    
  220.       eWorld: nick                _/ _/_/  _/  _/       _/ _/      
  221.          CIS: 71232,766          _/   _/  _/   _/_/_/  _/   _/     
  222.     
  223.            "Science is nothing but perception" - Plato
  224.  
  225. ---------------------------
  226.  
  227. >From kocher@lts.sel.alcatel.de (Hartmut Kocher US/ESA 60/1L/2? #5629)
  228. Subject: AppleScript: event times out
  229. Date: Mon, 22 Aug 94 08:33:35 GMT
  230. Organization: SEL-Alcatel LTS Dept. US/ES
  231.  
  232. I've written a small AppleScript, that copies a few folders around
  233. using the scriptable Finder. My problem is that if one of these folders
  234. holds many files, the reply from the Finder takes too long and the
  235. reply times out (aborting the script :-( ).
  236.  
  237. How can I set the timeout value, so my script is willing to wait
  238. longer fro a reply?
  239.  
  240. Thanks for your suggestions.
  241.  
  242. -- 
  243. +==============================|==============================+
  244. | Hartmut Kocher               |                              |
  245. | Technical Consultant         | All opinions expressed here  |
  246. | Rational GmbH                | are my own.                  |
  247. | Rosenstrasse 7               |                              |
  248. | 82049 Pullach im Isartal     | I know you guessed it,       |
  249. | Germany                      | but it keeps my lawyer happy.|
  250. | Email: hwk@rational.com      |                              |
  251. +==============================|==============================+
  252.  
  253. +++++++++++++++++++++++++++
  254.  
  255. >From dmcleod@hpb.hwc.ca (D.A. McLeod)
  256. Date: 22 Aug 1994 13:32:42 GMT
  257. Organization: Health Canada
  258.  
  259. Hartmut Kocher US/ESA 60/1L/2? #5629 (kocher@lts.sel.alcatel.de) wrote:
  260. : How can I set the timeout value, so my script is willing to wait
  261. : longer fro a reply?
  262.  
  263. with timeout of #### seconds
  264.      .
  265.      .
  266.      .
  267. end timeout
  268.  
  269. +++++++++++++++++++++++++++
  270.  
  271. >From engelhar@bga.com (Michael Engelhart)
  272. Date: 22 Aug 1994 15:38:09 GMT
  273. Organization: Apple Travel
  274.  
  275. In article <1994Aug22.083335.25853@lts.sel.alcatel.de>,
  276. kocher@lts.sel.alcatel.de (Hartmut Kocher US/ESA 60/1L/2? #5629) wrote:
  277.  
  278. > I've written a small AppleScript, that copies a few folders around
  279. > using the scriptable Finder. My problem is that if one of these folders
  280. > holds many files, the reply from the Finder takes too long and the
  281. > reply times out (aborting the script :-( ).
  282. > How can I set the timeout value, so my script is willing to wait
  283. > longer fro a reply?
  284. > Thanks for your suggestions.
  285. > -- 
  286. > +==============================|==============================+
  287. > | Hartmut Kocher               |                              |
  288. > | Technical Consultant         | All opinions expressed here  |
  289. > | Rational GmbH                | are my own.                  |
  290. > | Rosenstrasse 7               |                              |
  291. > | 82049 Pullach im Isartal     | I know you guessed it,       |
  292. > | Germany                      | but it keeps my lawyer happy.|
  293. > | Email: hwk@rational.com      |                              |
  294. > +==============================|==============================+
  295.  
  296.  
  297. Hartmut,
  298.  
  299. simply enclose your routine with the following:
  300.  
  301. with timeout of 400 seconds --use any value you want, the default is 120
  302. seconds
  303.      your routine
  304. end timeout
  305.  
  306. Mike
  307.  
  308. ---------------------------
  309.  
  310. >From jpek@umich.edu (Jeff Pek)
  311. Subject: C++ Virtual Destructor Q
  312. Date: 19 Aug 1994 22:05:08 GMT
  313. Organization: U of Mich (MBA)
  314.  
  315. I wonder if someone could clear the air around our office about why
  316. virtual destructors should or should not be used. Specifically, I'm
  317. interested in Metrowerks' compiler's implementation.
  318.  
  319. 1) Why would I want to/need to declare a destructor virtual?
  320. 2) What happens if I don't?
  321.  
  322. Thanks very much!
  323. Jeff
  324.  
  325. - -------------------------------------------
  326. Jeff Pek                       jpek@umich.edu
  327. Emerald Intelligence / University of Michigan
  328.  
  329. +++++++++++++++++++++++++++
  330.  
  331. >From mwron@aol.com (MW Ron)
  332. Date: 19 Aug 1994 19:44:06 -0400
  333. Organization: America Online, Inc. (1-800-827-6364)
  334.  
  335. In article <333aak$fj8@lastactionhero.rs.itd.umich.edu>, jpek@umich.edu
  336. (Jeff Pek) writes:
  337.  
  338. >>1) Why would I want to/need to declare a destructor virtual?
  339. >>2) What happens if I don't?
  340.  
  341. 1) You need to declare a virtual destructor when you have a base class,
  342. its destructor is different than the derived classes destructor, and
  343. objects are deleted via pointer or refernce to base class. ( a good habit,
  344. declare it for all base classes )
  345.  
  346. 2) if you don't, you will not guarantee all objects will be deleted when
  347. an object is deleted, if it is accessed as a base class poiter.
  348.  
  349. Scott Meyers in Effective C++ explains this quite well.
  350.  
  351. Ron Liechty
  352. RonL@metrowerks.com
  353. Metrowerks Inc.
  354.  
  355. +++++++++++++++++++++++++++
  356.  
  357. >From neeri@iis.ee.ethz.ch (Matthias Neeracher)
  358. Date: 19 Aug 1994 23:19:32 GMT
  359. Organization: Swiss Federal Institute of Technology (ETHZ)
  360.  
  361. jpek@umich.edu (Jeff Pek) writes:
  362. >I wonder if someone could clear the air around our office about why
  363. >virtual destructors should or should not be used. Specifically, I'm
  364. >interested in Metrowerks' compiler's implementation.
  365.  
  366. >1) Why would I want to/need to declare a destructor virtual?
  367.  
  368. As a rule of thumb, as soon as you have a virtual function for a class,
  369. you should also have a virtual destruction.
  370.  
  371. >2) What happens if I don't?
  372.  
  373. As an example, take:
  374.  
  375. class A ...
  376. class B : public A ...
  377.  
  378. A * pa = new B;
  379.  
  380. delete pa;
  381.  
  382. Unless A has a virtual destructor, no destructor for B will be executed on the
  383. object pointed to by pa, which is would often be desirable.
  384.  
  385. Matthias
  386.  
  387. - ---
  388. Matthias Neeracher <neeri@iis.ee.ethz.ch> http://err.ethz.ch/members/neeri.html
  389.    "There once was an Age of Reason, but we've progressed beyond it."
  390.                                    -- Ayn Rand, _Atlas Shrugged_
  391.  
  392. +++++++++++++++++++++++++++
  393.  
  394. >From gurgle@dnai.com (Pete Gontier)
  395. Date: Fri, 19 Aug 1994 20:17:34 -0800
  396. Organization: Integer Poet Software
  397.  
  398. In article <333aak$fj8@lastactionhero.rs.itd.umich.edu>, jpek@umich.edu
  399. (Jeff Pek) wrote:
  400.  
  401. > 1) Why would I want to/need to declare a (C++) destructor virtual?
  402. > 2) What happens if I don't?
  403.  
  404. The Annotated C++ Reference Manual (commonly known as "the ARM"), Ellis
  405. and Stroustup, ISBN, 0-201-51459-1, chapter 12.4 (page 276 in my
  406. printing).
  407.  
  408. And a note to aid in your reading: non-virtual destructors are the
  409. exception (no pun intended), not the rule.
  410.  
  411. -- 
  412.  Pete Gontier // CTO, Integer Poet Software // gurgle@dnai.com
  413.  
  414.  "Even during a particularly harsh (Colorado) winter... many of the
  415.  300 families in the VCTV (movies-on-demand) trial continued to go
  416.  to video stores." -- eis@murrow.tufts.edu, in Wired 2.09 p62
  417.  
  418. +++++++++++++++++++++++++++
  419.  
  420. >From mwron@aol.com (MW Ron)
  421. Date: 20 Aug 1994 12:20:01 -0400
  422. Organization: America Online, Inc. (1-800-827-6364)
  423.  
  424. In article <gurgle-1908942017340001@gurgle.dnai.com>, gurgle@dnai.com
  425. (Pete Gontier) writes:
  426.  
  427. Here is a short example of a virtual destructor in use. remove the virtual
  428. keyword and you will see that only the base class's destructor is called.
  429. Ron Liechty
  430. RonL@metrowerks.com
  431. Metrowerks Inc.
  432.  
  433. #include <iostream>
  434.  
  435. class base {
  436.   public:
  437.      int *a;
  438.   protected:
  439.      base() { a = new int(1);}
  440.   public:
  441.      virtual ~base()  { cout << "deleteting base "; delete a;};
  442. };
  443.  
  444. class base2 : public base {
  445.   public:
  446.       int *b;
  447.   protected:
  448.       base2() { b = new int(1);}
  449.   public:
  450.       virtual ~base2()  { cout << "deleteting base2 "; delete b;};
  451.  };
  452.  
  453.  class d : public base2 {
  454.      public :
  455.        int *c;
  456.      public:
  457.        d() { c = new int(3);}
  458.        ~d() { cout << "deleteting d "; delete c;};
  459.  };    
  460.       
  461.       
  462.  main()
  463.  {
  464.     base *bPtr = new d;
  465.     delete bPtr;
  466.     
  467.     cout << "enter a char " ;
  468.     cin.get();   
  469.     return 0;
  470.  }     
  471.       
  472.  
  473. +++++++++++++++++++++++++++
  474.  
  475. >From ekstrom@aggroup.com (Harold Ekstrom)
  476. Date: Sat, 20 Aug 1994 20:45:15 -0800
  477. Organization: Ag Group
  478.  
  479. In article <333g46$hu5@search01.news.aol.com>, mwron@aol.com (MW Ron) wrote:
  480.  
  481. > In article <333aak$fj8@lastactionhero.rs.itd.umich.edu>, jpek@umich.edu
  482. > (Jeff Pek) writes:
  483. > >>1) Why would I want to/need to declare a destructor virtual?
  484. > >>2) What happens if I don't?
  485. > 1) You need to declare a virtual destructor when you have a base class,
  486. > its destructor is different than the derived classes destructor, and
  487. > objects are deleted via pointer or refernce to base class. ( a good habit,
  488. > declare it for all base classes )
  489. > 2) if you don't, you will not guarantee all objects will be deleted when
  490. > an object is deleted, if it is accessed as a base class poiter.
  491. >  
  492. > Scott Meyers in Effective C++ explains this quite well.
  493. > Ron Liechty
  494. > RonL@metrowerks.com
  495. > Metrowerks Inc.
  496.  
  497. Another good source of answers for this and other common C++
  498. questions is the C++FAQ (rtfm.mit.edu). It was one of the
  499. first things I read when learning C++.
  500.  
  501. harold
  502. - ------------------------------------------------------------
  503. Harold Ekstrom
  504. ekstrom@aggroup.com
  505. ag group, inc.
  506. 2540 camino diablo, suite 200
  507. walnut creek, ca 94596
  508. 510-937-7900 voice
  509. 510-937-2479 fax
  510. 510-937-6704 ara
  511. ftp.aggroup.com anonymous ftp
  512.  
  513.  
  514. ---------------------------
  515.  
  516. >From afrancke@netcom.com (Andrew Francke)
  517. Subject: Enum size -- what's the LCD?
  518. Date: Wed, 17 Aug 1994 02:54:56 GMT
  519. Organization: Netcom Online Communications Services (408-241-9760 login: guest)
  520.  
  521. If I'm not mistaken, the lowest common denominator for enum size is
  522. that presented by MPW 68k C -- variable 1, 2, or 4 bytes. Other Mac C
  523. and C++ compilers support the ANSI definition, sizeof(enum) ==
  524. sizeof(int), but not MPW C. All Mac compilers support variable enum
  525. size just like MPW C.
  526.  
  527. Is this strictly correct?
  528.  
  529. Now, examine the following code:
  530.  
  531. typedef enum
  532. {
  533.     a=255
  534. } one_byte_enum_t;
  535.  
  536. typedef enum
  537. {
  538.     b=65000
  539. } two_byte_enum_t;
  540.  
  541. typedef enum
  542. {
  543.     c=1000000
  544. } three_byte_enum_t;
  545.  
  546. #if defined (powerc) || defined (__power)
  547. #pragma align=mac68k
  548. #endif
  549. struct test1
  550. {
  551.     one_byte_enum_t        mem1;
  552.     two_byte_enum_t        mem2;
  553.     three_byte_enum_t    mem3;
  554. };
  555. #if defined (powerc) || defined (__powerc)
  556. #pragma align reset // or whatever it is
  557. #endif
  558.  
  559. The $10,000,000 question -- do these structures lay out on every Mac
  560. C compiler in this way:
  561.  
  562. Offset        Byte
  563. from        Contents
  564. &test 1:
  565. - ---------    --------
  566. 0x00000000:    mem1
  567. 0x00000001:    <pad>
  568. 0x00000002:    mem2
  569. 0x00000003:    mem2
  570. 0x00000004:    mem3
  571. 0x00000005:    mem3
  572. 0x00000006:    mem3
  573. 0x00000007:    mem3
  574.  
  575. How about stack alignment? If I declare a function:
  576.  
  577. void
  578. foo ( one_byte_enum a, two_byte_enum b, three_byte_enum c );
  579.  
  580. ...what will the stack look like? Will it be the same for all Mac C/C++
  581. compilers?
  582.  
  583. Example stack:
  584.          1   2   3   4   5   6   7   8
  585. SP-0x8:  c   c   c   c   b   b <pad> a
  586. SP:
  587.  
  588. (Sorry if this last example isn't that clear -- the stack is being
  589. displayed in hi-lo, left to right order, assuming that all parameters
  590. have been pushed and we're about to JSR to foo)
  591.  
  592. Thanks in advance for your insight.
  593.  
  594. Andy Francke
  595.  
  596. +++++++++++++++++++++++++++
  597.  
  598. >From mclow@san_marcos.csusm.edu (Marshall Clow)
  599. Date: Wed, 17 Aug 1994 00:53:32 -0800
  600. Organization: Aladdin Systems
  601.  
  602. In article <afranckeCuns3L.MuC@netcom.com>, afrancke@netcom.com (Andrew
  603. Francke) wrote:
  604.  
  605. > If I'm not mistaken, the lowest common denominator for enum size is
  606. > that presented by MPW 68k C -- variable 1, 2, or 4 bytes. Other Mac C
  607. > and C++ compilers support the ANSI definition, sizeof(enum) ==
  608. > sizeof(int), but not MPW C. All Mac compilers support variable enum
  609. > size just like MPW C.
  610. > Is this strictly correct?
  611. >
  612.    No. It's wrong in several areas.
  613.  
  614. [ code deleted ]
  615. > The $10,000,000 question -- do these structures lay out on every Mac
  616. > C compiler in this way:
  617. [ more code deleted ]
  618.  
  619. No. Different compilers allocated sizes for enums differently. I believe
  620. that the following is true:
  621.  
  622. 1) MPW C (68K) -- enums are 4 bytes
  623.  
  624. 2) Think C (68K) -- enums are 1, 2, or 4 bytes (based on values) except if
  625. the "Enums are always ints" preference is checked, in which case they are
  626. 2 or 4 bytes depending on how big your ints are.
  627.  
  628. 3) Metrowerks C (68K) -- same as Think C (68K).
  629.  
  630. 4) Metrowerks C (PPC) -- enums are 1, 2, or 4 bytes (based on values)
  631. except if the "Enums are always ints" preference is checked, in which case
  632. they are 4 bytes.
  633.  
  634. 5) PPCC (Apple's MPW based PPC compiler) -- I don't know.
  635. 6) Apple's new PPC C compiler (Beta on ETO #15) -- I don't know
  636. 7) Motorola C (PPC) -- I don't know
  637. 8) Absoft C (PPC) -- I don't know
  638.  
  639. [ I'm sure I forgot someone. ]
  640.  
  641. The ANSI spec (from memory, so don't flame me for wordage) says that enums
  642. must be "compatible with integer type". The rest is up to the compiler
  643. writer.
  644.  
  645. This is one of the non-portable aspects of C.
  646.  
  647. -- Marshall
  648.  
  649. -- 
  650. Marshall Clow
  651. Aladdin Systems
  652. mclow@san_marcos.csusm.edu
  653.  
  654. +++++++++++++++++++++++++++
  655.  
  656. >From becker@Xenon.Stanford.EDU (Denizen of the Deep)
  657. Date: 17 Aug 1994 16:22:16 GMT
  658. Organization: Computer Science Department, Stanford University.
  659.  
  660. In article <mclow-1708940053320001@lpm8.csusm.edu>,
  661. Marshall Clow <mclow@san_marcos.csusm.edu> wrote:
  662. >
  663. >The ANSI spec (from memory, so don't flame me for wordage) says that enums
  664. >must be "compatible with integer type". The rest is up to the compiler
  665. >writer.
  666. >
  667. >This is one of the non-portable aspects of C.
  668. >
  669. >-- Marshall
  670. >
  671.  
  672. >From K&R II, A8.4:
  673.     The identifiers in an enumerator list are declared as constants
  674.     of type int...
  675.  
  676. So there you have it.  In strict ANSI C, enums should take up the same
  677. space as an int on the machine (i.e. 2 or 4 bytes, depending on your
  678. settings and/or compiler).  It's only non-portable in the sense that
  679. different compilers may have different sizes for int; however once the
  680. choice of int size is made, there is no latitude for choosing how to
  681. deal with enums.
  682.  
  683. -Jon
  684.  
  685. +++++++++++++++++++++++++++
  686.  
  687. >From Lars.Farm@nts.mh.se (Lars Farm)
  688. Date: Fri, 19 Aug 1994 10:08:12 +0100
  689. Organization: Mid Sweden University
  690.  
  691. In article <32tdfo$gn2@Times.Stanford.EDU>, becker@Xenon.Stanford.EDU
  692. (Denizen of the Deep) wrote:
  693.  
  694. > From K&R II, A8.4:
  695. >         The identifiers in an enumerator list are declared as constants
  696. >         of type int...
  697. > So there you have it.  In strict ANSI C, enums should take up the same
  698. > space as an int on the machine (i.e. 2 or 4 bytes, depending on your
  699.  
  700. In C perhaps, but not so in C++. enum is not int. An enum can be
  701. initialized by a constant expression of integral type. An enum will
  702. silently be converted to an int where an int is expected (|, &, + ...) but
  703. an int will not silently be converted to an enum, because nothing says it
  704. will fit in the space allocated for the enum. Cast needed.
  705.  
  706. An enum is required to have room for "...the nearest larger binary power
  707. minus 1 and down to 0...". So enum { false,true } is only required to
  708. allocate one bit for the value. [ARM - ANSI/ISO resolutions r.7.2].
  709. Realistically this means that an enum will be allocated 1, 2 or 4 bytes
  710. depending on enumerated constants and whatever the compilers author sees
  711. reasonable. In any event the space allocated to an enum may be smaller
  712. than what is needed for an int provided it has room for any of the enum
  713. constants.
  714.  
  715. Lars
  716.  
  717. -- 
  718. Lars.Farm@nts.mh.se
  719.  
  720. +++++++++++++++++++++++++++
  721.  
  722. >From phils@bedford.symantec.com (Phil Shapiro)
  723. Date: Fri, 19 Aug 1994 12:36:51 -0400
  724. Organization: Symantec Corp.
  725.  
  726. | No. Different compilers allocated sizes for enums differently. I believe
  727. | that the following is true:
  728.  
  729. Only slightly off, with respect to "enums are always ints", see below*.
  730.  
  731. | 1) MPW C (68K) -- enums are 4 bytes
  732. | 2) Think C (68K) -- enums are 1, 2, or 4 bytes (based on values) except if
  733. | the "Enums are always ints" preference is checked, in which case they are
  734. | 2 or 4 bytes depending on how big your ints are.
  735. | 3) Metrowerks C (68K) -- same as Think C (68K).
  736. | 4) Metrowerks C (PPC) -- enums are 1, 2, or 4 bytes (based on values)
  737. | except if the "Enums are always ints" preference is checked, in which case
  738. | they are 4 bytes.
  739. | 5) PPCC (Apple's MPW based PPC compiler) -- I don't know.
  740. | 6) Apple's new PPC C compiler (Beta on ETO #15) -- I don't know
  741. | 7) Motorola C (PPC) -- I don't know
  742. | 8) Absoft C (PPC) -- I don't know
  743.  
  744. 9) Symantec C/C++ -- enums are 1, 2, or 4 bytes based on values. If enums
  745. are always ints is checked, then they are 4 bytes. The rules are the same
  746. for both the 68k and PowerPC compilers.
  747.  
  748. Apple's new PPC C++ compiler (aka MrC) should be the same as Symantec C++,
  749. since they share compiler front ends.
  750.  
  751. (*) In ANSI C, enums are the same size as int, provided that the value
  752. that they contain can be represented in an int. So when you use the "enums
  753. are always ints" option, you're really saying that they're at least as big
  754. as an int. They can be bigger, or unsigned (or both), depending on the
  755. value that they contain.
  756.  
  757. The main thing is that you shouldn't depend on the size of an enum. If you
  758. plan to do I/O with an enum, cast it to a known (portable) type first.
  759.  
  760.    -phil
  761.  
  762. +++++++++++++++++++++++++++
  763.  
  764. >From afrancke@netcom.com (Andrew Francke)
  765. Date: Fri, 19 Aug 1994 21:16:29 GMT
  766. Organization: Netcom Online Communications Services (408-241-9760 login: guest)
  767.  
  768. > The main thing is that you shouldn't depend on the size of an enum. If
  769. > you plan to do I/O with an enum, cast it to a known (portable) type first.
  770. >  -phil
  771.  
  772. I'm afraid this is a moot point in my case. I've already got a sizable
  773. amount of ASN.1-compiler-generated C source with enums a'plenty in
  774. struture declarations.
  775.  
  776. I'll state my question again:
  777. GIVEN THE RIGHT SET OF COMPILER OPTIONS, is not the LCD of enum sizes
  778. the 1-2-4 packing scheme? I yet labor under the impression that MPW C
  779. doesn't even support "enums are ints" as an option.
  780.  
  781. ---------------------------
  782.  
  783. >From redial <redial@netcom.com>
  784. Subject: Followup on 'Safe Save' problem - still ticking!
  785. Date: Sat, 20 Aug 1994 21:46:44 GMT
  786. Organization: NETCOM On-line Communication Services (408 261-4700 guest)
  787.  
  788. Netters -
  789.  
  790. Thanks to all who attempted to help with my 'Safe save' problem.  It did
  791. indeed look as tho  closing the temporary file after the FSpExchangeFiles
  792. swap would solve the problem of the 'File Busy' error message when I
  793. attempted to delete the temporary file.  Unfortunately :-( it didn't.
  794.  
  795. Here's a summary of my Safe Save procedure, which follows the example in
  796. Think C Reference 2.0.  I call StandardPutFile to get the user's input re
  797. the new file.  If the reply is good and we're not replacing an existing
  798. file, I call FSpCreate.  (According to IM:Files this creates a file with
  799. both forks, only they're both empty.)  I then call FSpCreateResFile to
  800. open
  801. the resource fork, and proceed to copy a string resource for the
  802. 'Application missing' error message ('STR ' ID -16396) from my
  803. application's resources into the new file.  I then close the resouce fork
  804. with an FSClose.  Next, I open the data fork using FSpOpenDF.  If no
  805. errors
  806. occur, I proceed to create a temporary file, open its data fork, write the
  807. data into it, close it, exchange its data with the real file, and then
  808. delete the temporary file.  It's at this point I get my first sign of
  809. trouble: OSErr -47, aka 'File busy.'
  810.  
  811. My snooping has revealed the following points of information. 1) When I
  812. attempt to open the newly created document file with ResEdit, I'm told it
  813. doesn't have a resource fork.  2) It does contain the appropriate data in
  814. its data fork.  And 3) if I reboot the computer, the temporary file shows
  815. up in the trashcan in a folder labled 'Rescued items.'
  816.  
  817. >From this, is it obvious to anyone as to what I'm doing wrong?  Any
  818. suggestions on what debugging steps I should take would be greatly
  819. appreciated.
  820.  
  821. TIA. 
  822.  
  823. Ron Goebel                     |  Internet: redial@netcom.com
  824.  
  825. +++++++++++++++++++++++++++
  826.  
  827. >From tgaul@halcyon.com (Troy Gaul)
  828. Date: Sat, 20 Aug 1994 23:05:30 -0700
  829. Organization: Infinity Systems
  830.  
  831. In article <netnewsCuusHx.25A@netcom.com>, redial <redial@netcom.com> wrote:
  832.  
  833. > Here's a summary of my Safe Save procedure, which follows the example in
  834. > Think C Reference 2.0.  I call StandardPutFile to get the user's input re
  835. > the new file.  If the reply is good and we're not replacing an existing
  836. > file, I call FSpCreate.  (According to IM:Files this creates a file with
  837. > both forks, only they're both empty.)  I then call FSpCreateResFile to
  838. > open
  839. > the resource fork, and proceed to copy a string resource for the
  840. > 'Application missing' error message ('STR ' ID -16396) from my
  841. > application's resources into the new file.  I then close the resouce fork
  842. > with an FSClose.  Next, I open the data fork using FSpOpenDF.  If no
  843. > errors
  844. > occur, I proceed to create a temporary file, open its data fork, write the
  845. > data into it, close it, exchange its data with the real file, and then
  846. > delete the temporary file.  It's at this point I get my first sign of
  847. > trouble: OSErr -47, aka 'File busy.'
  848.  
  849. First, it sounds like you're putting the resources into the 'real' file,
  850. and then putting the data into the 'temp' file's data fork, and then doing
  851. a swap on them.  This isn't what you want to do.  The call
  852. FSpExchangeFiles doesn't swap the data fork from one file to another, it
  853. swaps the directory information for the two files.  This means that both
  854. the data and resource forks are swapped.
  855.  
  856. Note, though, that this call does not swap the Finder information (like
  857. Modification Dates) for the files (or the locations in the file system,
  858. i.e. the file named 'Temp File' is still in the Temporary Items Folder).
  859.  
  860. Next, once you have exchanged the files, I _think_ that the refnums you
  861. have for the files are also considered 'swapped' (it's been a while since
  862. I've done this, and I don't have the source code I produced anymore, but a
  863. quick glance into the Think Reference seemed to indicate that).  
  864.  
  865. This means if you have the variables 'realFileRefnum' and
  866. 'tempFileRefnum', which point where their names imply before the swap,
  867. after the swap, they point to the opposite files in the files system. So,
  868. by closing tempFileRefnum, you're really closing the 'real' file, and when
  869. you try to delete the file with tempFileFSSpec, the 'temp' file hasn't
  870. been closed, and you'd get that error.  (Note that although the refnums
  871. are backward, the FSSpecs still point to the files that their names would
  872. imply, because these files are still in the same locations in the file
  873. system, just their contents have been swapped.)
  874.  
  875.  
  876. > My snooping has revealed the following points of information. 
  877. > 1) When I
  878. > attempt to open the newly created document file with ResEdit, I'm told it
  879. > doesn't have a resource fork.  
  880.  
  881. That's because you never added a resource fork to the temp file (where you
  882. should have), you added it to the intended destination file (where it was
  883. then swapped into the temp file, the one you find in the Rescued Items
  884. folder).
  885.  
  886.  
  887. > 2) It does contain the appropriate data in
  888. > its data fork.  And 
  889.  
  890. That's because the swap did in fact occur.
  891.  
  892.  
  893. > 3) if I reboot the computer, the temporary file shows
  894. > up in the trashcan in a folder labled 'Rescued items.'
  895.  
  896. Anything in the temporary folder upon restart will be put into a folder by
  897. that name in the Trash automatically.  This is indicative of the fact that
  898. the temp file was never deleted (as your error message indicated).
  899.  
  900. Hope this helps.
  901. _troy
  902. //////// //////___Troy Gaul____________________tgaul@halcyon.com___//
  903.   //    //      Infinity Systems                                  //
  904.  //    //  //  Redmond, Washington                               //
  905. //    //////____________________________________________________//
  906.  
  907. +++++++++++++++++++++++++++
  908.  
  909. >From h+@nada.kth.se (Jon W{tte)
  910. Date: Sun, 21 Aug 1994 13:28:06 +0200
  911. Organization: Royal Institute of Something or other
  912.  
  913. In article <netnewsCuusHx.25A@netcom.com>,
  914. redial <redial@netcom.com> wrote:
  915.  
  916. >Thanks to all who attempted to help with my 'Safe save' problem.  It did
  917. >indeed look as tho  closing the temporary file after the FSpExchangeFiles
  918. >swap would solve the problem of the 'File Busy' error message when I
  919. >attempted to delete the temporary file.  Unfortunately :-( it didn't.
  920.  
  921. That's because when you call FSpExchangeFiles, the open file 
  922. reference still points into the data you're writing; i e the 
  923. fRefNum now points into the "real" file and not the "temp" file 
  924. which now contains the old data. You have to close the _old_ 
  925. file!
  926.  
  927. /*
  928.  * Add error checking to taste
  929.  * This assumes you're passing the address of your currently-
  930.  * open file's fRefNum, and the FSSpec for it, and that there
  931.  * is indeed a currently-open file.
  932.  */
  933. void
  934. SafeSave (
  935.     short * oldRefNum ,
  936.     const FSSpec * fileLocation )
  937. {
  938.     FSSpec tempSpec ;
  939.     short tempRef = 0 ;
  940.     FInfo fi ;
  941.  
  942.     FSpGetFInfo ( fileLocation , & fi ) ;
  943.  
  944.     MakeTempSpec ( & tempSpec ) ;
  945.     FSpCreate ( & tempSpec , 'trsh' , 'trsh' , smSystemScript ) ;
  946.     FSpOpenDF ( & tempSpec , fsRdWrPerm , & tempRef ) ;
  947.  
  948.     WriteDataToFile ( tempRef ) ;
  949.  
  950.     FSpExchangeFiles ( fileLocation , & tempSpec ) ;
  951.     FSpSetFInfo ( fileLocation , & fi ) ;
  952.     FSClose ( * oldRefNum ) ;
  953.     * oldRefNum = tempRef ;
  954.     FSpDelete ( & tempSpec ) ;
  955. }
  956.  
  957.  
  958. --
  959.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  960.     Not speaking for IBM.
  961.  
  962.  
  963. ---------------------------
  964.  
  965. >From Felix Ungman <felix@hu.se>
  966. Subject: MW DebugNew Tip
  967. Date: 22 Aug 94 14:06:13 +0000
  968. Organization: (none)
  969.  
  970. I want to thank MW for the DebugNew module! Even though my code
  971. was pretty well tested, I tracked down 5 memory leaks after only
  972. 15 minutes of testing!
  973.  
  974. The only unneccecary flaw is that it violates the first rule of tools:
  975. Never, ever, increase the work of the user.
  976.  
  977. Instead of making your code look like a mess of NEW macros
  978. (NEW is defined as "#define NEW new(__FILE__, __LINE__)")
  979. you can simply overide operator new with "#define new new(__FILE__, __LIN=
  980. E__)"
  981.  
  982. Or if you don't want to edit the DebugNew.h file:
  983. #include <DebugNew.h>
  984. #define new NEW
  985.  
  986. Works great in most cases.
  987.  
  988. +++++++++++++++++++++++++++
  989.  
  990. >From dpodwall@world.std.com (Dan Podwall)
  991. Date: Mon, 22 Aug 1994 15:26:57 GMT
  992. Organization: Metrowerks, Inc.
  993.  
  994. Felix Ungman (felix@hu.se) wrote:
  995. : Instead of making your code look like a mess of NEW macros
  996. : (NEW is defined as "#define NEW new(__FILE__, __LINE__)")
  997. : you can simply overide operator new with "#define new new(__FILE__, __LIN=
  998. : E__)"
  999.  
  1000. There reason it isn't done that way is because it would break the array form 
  1001. of operator new, e.g.
  1002.   char* p = new char[10];
  1003.  
  1004. You can't currently override the array operator new.
  1005.  
  1006. I agree that if you don't need the array version then your modification is
  1007. handy.
  1008.  
  1009. Dan Podwall
  1010. Metrowerks, Inc.
  1011.  
  1012. ---------------------------
  1013.  
  1014. >From peter.lewis@info.curtin.edu.au (Peter N Lewis)
  1015. Subject: Scrollbars in Dialogs?
  1016. Date: Sun, 21 Aug 1994 18:51:33 +0800
  1017. Organization: NCRPDA, Curtin University
  1018.  
  1019. Hi All,
  1020.  
  1021. Simple question, how do you do scroll bars as dialog items?  I can set up
  1022. the CNTL resource and then make a control item in the dialog, and the
  1023. scontrol appears, and the dialog manager does all the tracking for it
  1024. (tracks the clicks on the arrows and highlights them, and drags the thumb
  1025. around).  But the clicks on the arrows don't seem to change the value of
  1026. the control.  Do I have to install some sort of proc to track them?  It
  1027. can't be that hard, but I checked another program and it used a user item
  1028. and created it's own control, so maybe it is?
  1029.    Peter.
  1030. -- 
  1031. Peter N Lewis <peter.lewis@info.curtin.edu.au> - Macintosh TCP fingerpainter
  1032.  
  1033. +++++++++++++++++++++++++++
  1034.  
  1035. >From rmah@panix.com (Robert Mah)
  1036. Date: Sun, 21 Aug 1994 15:00:50 -0500
  1037. Organization: One Step Beyond
  1038.  
  1039. peter.lewis@info.curtin.edu.au (Peter N Lewis) wrote:
  1040.  
  1041. ) Simple question, how do you do scroll bars as dialog items?  I can set up
  1042. ) the CNTL resource and then make a control item in the dialog, and the
  1043. ) scontrol appears, and the dialog manager does all the tracking for it
  1044.  
  1045. I put a user item over (under?) the scroll bar item to catch clicks before
  1046. they get to the scroll bar itself.  This way, you can still use ResEdit (or
  1047. whatever) to edit your dialog.
  1048.  
  1049. And, yeah, you have to manually track the the arrows using a callback.
  1050.  
  1051. Cheers,
  1052. Rob
  1053. _____________________________________________________________________
  1054. Robert S. Mah           Software Development          +1.212.947.6507
  1055. One Step Beyond        and Network Consulting          rmah@panix.com
  1056.  
  1057. +++++++++++++++++++++++++++
  1058.  
  1059. >From tclement@hmc.edu (Todd Clements)
  1060. Date: 22 Aug 1994 02:22:22 GMT
  1061. Organization: Harvey Mudd College, Claremont CA USA
  1062.  
  1063. Check out DialogBits on ftp.apple.com (I think in the snippets
  1064. directory)... it's in C, but I'm sure you can figure it out. =)
  1065.  
  1066. Todd
  1067. --
  1068. tclement@hmc.edu   Todd Clements - Chem nerd at Harvey Mudd College
  1069. "In the beginning, there was nothing.  And God said, 'Let there be LIGHT!'
  1070. And there was still nothing; but now you could see it."
  1071.  
  1072.  
  1073. ---------------------------
  1074.  
  1075. >From Ola.Montan@malmo.trab.se (Ola Montan)
  1076. Subject: Should new programs still be System 6 compatible?
  1077. Date: Wed, 3 Aug 1994 11:32:14 GMT
  1078. Organization: Telia Research AB
  1079.  
  1080. I'm writing new programs for the Macintosh and I wonder:
  1081.  
  1082. - Is it OK today to assume that the user have System 7.0 or later, or do
  1083. I have to make it possible to run the program on System 6 or even System
  1084. 5?
  1085.  
  1086. - If I have to be able to run on System 6, what do I have to think about?
  1087. All "compatiblity guidelines" tells about what to think about to run in
  1088. System 7.
  1089.  
  1090. / Ola Mont·n
  1091.  
  1092. +++++++++++++++++++++++++++
  1093.  
  1094. >From decartwr@newstand.syr.edu (Dana Cartwright 3rd)
  1095. Date: 3 Aug 1994 12:23:13 GMT
  1096. Organization: Syracuse University, Syracuse NY, USA
  1097.  
  1098. Ola Montan (Ola.Montan@malmo.trab.se) wrote:
  1099. : I'm writing new programs for the Macintosh and I wonder:
  1100.  
  1101. : - Is it OK today to assume that the user have System 7.0 or later, or do
  1102. : I have to make it possible to run the program on System 6 or even System
  1103. : 5?
  1104.  
  1105. I'll add two more questions to your list: 68000 compatibility, and
  1106. older versions of QuickDraw.  I keep an "old" SE around and run my
  1107. software on it, but I'm darned if I know why.  Preserving compability
  1108. with these older systems is less and less attractive (to the developer,
  1109. at any rate!).  Development goes forward (in my case) on a 68040.
  1110.  
  1111. If you use floating windows (like Dean Yu's), you'll find they work
  1112. differently on older ROM's (at least, I suspect it's code in the ROM's
  1113. that's the difference, but that's just a guess on my part).
  1114.  
  1115.  
  1116. +++++++++++++++++++++++++++
  1117.  
  1118. >From nagle@netcom.com (John Nagle)
  1119. Date: Wed, 3 Aug 1994 16:38:21 GMT
  1120. Organization: NETCOM On-line Communication Services (408 261-4700 guest)
  1121.  
  1122. Ola.Montan@malmo.trab.se (Ola Montan) writes:
  1123. >I'm writing new programs for the Macintosh and I wonder:
  1124. >- Is it OK today to assume that the user have System 7.0 or later, or do
  1125. >I have to make it possible to run the program on System 6 or even System
  1126. >5?
  1127.  
  1128.       Unless your application is for the educational or game market,
  1129. forget System 6.  
  1130.  
  1131.                     John Nagle
  1132.  
  1133. +++++++++++++++++++++++++++
  1134.  
  1135. >From h+@nada.kth.se (Jon W{tte)
  1136. Date: Wed, 03 Aug 1994 19:35:33 +0200
  1137. Organization: Royal Institute of Something or other
  1138.  
  1139. In article <31o27h$8q8@newstand.syr.edu>,
  1140.  decartwr@newstand.syr.edu (Dana Cartwright 3rd) wrote:
  1141.  
  1142. >: - Is it OK today to assume that the user have System 7.0 or later, or do
  1143. >: I have to make it possible to run the program on System 6 or even System
  1144. >: 5?
  1145.  
  1146. >I'll add two more questions to your list: 68000 compatibility, and
  1147. >older versions of QuickDraw.  I keep an "old" SE around and run my
  1148.  
  1149. This is covered in the FAQ (the Total Authority Document :-)
  1150.  
  1151. Anyway, there seems to be two ways you can go:
  1152.  
  1153. 1) Does your app require color, or AppleEvents, or QuickTime, or 
  1154. more than 1 MB of memory (for itself)? Or does it require more than 
  1155. one process running at once? Go for System 7 only.
  1156.  
  1157. 2) Is your application in the "typical application" cathegory; word 
  1158. processing, telecommunications, ... People who bought their 
  1159. computers four years ago probably bought what they need already. Go 
  1160. with System 7.
  1161.  
  1162. 3) So you're writing a novelty application which will work well on 
  1163. small screens, in black/white, in a small memory footprint. Here, 
  1164. you might still sell into a bigger market if you work with System 6 
  1165. as well. However, for the majority of applications, it's just not 
  1166. worth it.
  1167.  
  1168. As an example, here is what I _demand_ to run in my newer apps:
  1169. - New File Manager (soon to be renamed the Old New File Manager :-)
  1170. - 32-bit QuickDraw
  1171. - 68020 or better
  1172. - AppleEvents
  1173. Of course I test for these individually, but on failure, I tell 
  1174. users to upgrade to System 7 (or their computer, if the CPU test 
  1175. fails)
  1176.  
  1177. However, some things should NOT be demanded. That Virtual Memory be 
  1178. off is an _evil_ thing, especially on PowerPCs where system 
  1179. performance is BETTER with VM on, as long as your swap file just 
  1180. covers your RAM and another meg or two.
  1181.  
  1182. Cheers,
  1183.  
  1184.                         / h+
  1185.  
  1186. --
  1187.   Jon W‰tte
  1188.   Hagagatan 1
  1189.   113 48 Stockholm
  1190.   Sweden
  1191.  
  1192.  
  1193. +++++++++++++++++++++++++++
  1194.  
  1195. >From blm@chinook.halcyon.com (Brian L. Matthews)
  1196. Date: 3 Aug 1994 17:28:09 GMT
  1197. Organization: Northwest Nexus Inc.
  1198.  
  1199. In article <1994Aug3.113214.15566@malmo.trab.se>,
  1200. Ola Montan <Ola.Montan@malmo.trab.se> wrote:
  1201. |- Is it OK today to assume that the user have System 7.0 or later, or do
  1202. |I have to make it possible to run the program on System 6 or even System
  1203. |5?
  1204.  
  1205. In my opinion, don't worry about anything earlier than System 6.  If
  1206. your target market is higher end users (who probably have newer machines
  1207. which don't even run System 6), don't worry about System 6.  If your
  1208. target is lower end users (who can't necessarily afford to upgrade to
  1209. the new machines or have the hardware to run System 7), you need to
  1210. worry about System 6.
  1211.  
  1212. However, whatever you assume about the target machine, make sure your
  1213. software tests your assumptions at run time and reacts gracefully if they're
  1214. wrong.  So if your software requires System 7, test for that, and if you're
  1215. not running on System 7 or later, present an alert stating you need System 7,
  1216. then exit (and of course the code that does this needs to run on System 6,
  1217. and is simple enough it can probably run on earlier systems as well).
  1218. Similarly for things like processor (68000 vs. 68020 vs. PowerPC), Color
  1219. Quickdraw, DSP, etc.
  1220.  
  1221. Brian
  1222.  
  1223. +++++++++++++++++++++++++++
  1224.  
  1225. >From woody@alumni.caltech.edu (William Edward Woody)
  1226. Date: 3 Aug 1994 20:32:35 GMT
  1227. Organization: California Institute of Technology, Alumni Association
  1228.  
  1229. In article <1994Aug3.113214.15566@malmo.trab.se>,
  1230. Ola Montan <Ola.Montan@malmo.trab.se> wrote:
  1231. >I'm writing new programs for the Macintosh and I wonder:
  1232. >
  1233. >- Is it OK today to assume that the user have System 7.0 or later, or do
  1234. >I have to make it possible to run the program on System 6 or even System
  1235. >5?
  1236.  
  1237. According to some information I got from Apple in one of their
  1238. developer's mailings, most users are running under System 7.
  1239. But 'most' means > 50%; not everyone has upgraded yet. It's
  1240. reasonable to support System 6.0.7 as well as System 7.
  1241.  
  1242. >- If I have to be able to run on System 6, what do I have to think about?
  1243. >All "compatiblity guidelines" tells about what to think about to run in
  1244. >System 7.
  1245.  
  1246. What I check for in my standard initialization loop in the
  1247. library I tend to use for all applications are:
  1248.  
  1249. o  Is AppleEvents available?
  1250.  
  1251.    (If they are, I install my Apple Events handler. If
  1252.    they are not, I use CountAppFiles() and GetAppFiles()
  1253.    to get the files which my application was run with.)
  1254.  
  1255. o  Is Color Quickdraw available?
  1256.  
  1257.    (For applications which use color. For applications
  1258.    which use 32 bit color, I also check the features which
  1259.    are available through the gestaltQuickdrawFeatures
  1260.    selector.
  1261.  
  1262. o  Are FSSpec-selectors available?
  1263.  
  1264.    (This sets a global flag. Anytime I want to open a
  1265.    file, I use the FSpOpenDF() call if the flag is set,
  1266.    and HOpen() call if it's clear. One of the cheats
  1267.    I use is to use the fields of the FSSpec data structure
  1268.    to store the Volume RefNum, Directory ID, and file
  1269.    name of the file I'm working with if that flag is
  1270.    clear.
  1271.  
  1272.    Though Apple says not to initialize the fields of a
  1273.    FSSpec by hand, I interpret that as meaning that if
  1274.    FSSpecs are supported by the OS, then you should use
  1275.    FSMakeFSSpec(). Otherwise, an FSSpec is simply 70
  1276.    bytes of storage that's up for grabs.)
  1277.  
  1278. All of the System 7 compatability guidelines (be 32 bit
  1279. clean, work well with MultiFinder, etc., etc., etc.) are
  1280. just generally good hygene.
  1281.  
  1282. And getting into the habit of checking with Gestalt for
  1283. a particular feature is algo just good hygene.
  1284.  
  1285. I hope this helps.
  1286.  
  1287.                     - Bill
  1288. -- 
  1289. - William Edward Woody                  | Disclamer:
  1290.   woody@alumni.cco.caltech.edu             | "He who knows does not speak;
  1291. - In Phase Consulting                   |  He who speaks does not know."
  1292.   337 West California #4; Glendale, CA 91203 |            - Lao Tzu
  1293.  
  1294. +++++++++++++++++++++++++++
  1295.  
  1296. >From lbotez@picard.cs.wisc.edu (Lynda Botez)
  1297. Date: 3 Aug 1994 21:04:49 GMT
  1298. Organization: U of Wisconsin CS Dept
  1299.  
  1300.  
  1301. Excuse me, but do you really tell your users to "upgrade their computer?"
  1302. haha...
  1303.  
  1304. "Your computer sucks; get a "real" computer..."
  1305.  
  1306. Sorry, that just cracks me up... <grin>
  1307.  
  1308.  
  1309. +++++++++++++++++++++++++++
  1310.  
  1311. >From marshall@cais.com (Preston Marshall)
  1312. Date: 3 Aug 1994 18:09:24 GMT
  1313. Organization: Vanguard Research, Inc.
  1314.  
  1315. > Ola Montan (Ola.Montan@malmo.trab.se) wrote:
  1316. > : I'm writing new programs for the Macintosh and I wonder:
  1317. > : - Is it OK today to assume that the user have System 7.0 or later, or do
  1318. > : I have to make it possible to run the program on System 6 or even System
  1319. > : 5?
  1320. I sent E-mail to Apple developer services once suggesting that they
  1321. periodically publish their estimates as to "what was out there" in terms
  1322. of systems and OS's.  They must have a guess as to how many plusses, SE's
  1323. or even IIfx's are stil active and being used.  
  1324.  
  1325. I would like to know what I loose when I decide to make a feature
  1326. mandatory.  The problem is going to come up again when 7.5 gets
  1327. established.
  1328.  
  1329. -- 
  1330. ___________________________________________________________________
  1331. |     Preston Marshall           -       marshall@cais.com        |
  1332. |     Vanguard Research, Inc.    -                                |
  1333. |     10306 Eaton Pl.            -       The opinions are mine,   |
  1334. |     Farifax, Va 22111          -       my employer doesn't care |
  1335. ___________________________________________________________________
  1336.  
  1337. +++++++++++++++++++++++++++
  1338.  
  1339. >From h+@nada.kth.se (Jon W{tte)
  1340. Date: Thu, 04 Aug 1994 11:00:59 +0200
  1341. Organization: Royal Institute of Something or other
  1342.  
  1343. In article <31out3$lme@gap.cco.caltech.edu>,
  1344.  woody@alumni.caltech.edu (William Edward Woody) wrote:
  1345.  
  1346. >According to some information I got from Apple in one of their
  1347. >developer's mailings, most users are running under System 7.
  1348. >But 'most' means > 50%; not everyone has upgraded yet. It's
  1349. >reasonable to support System 6.0.7 as well as System 7.
  1350.  
  1351. A year ago, the 50% limit was already passed. Since then, Apple has 
  1352. sold several million more computers, all of them with 68030s, color 
  1353. quickdraw enabled, and running System 7. People seem to be still 
  1354. living in the pre-1991 world of "lots" of 68000 macs. Face it: the 
  1355. way Apples sales have been taking off the last few years, 68000 and 
  1356. System 6 is a CLEAR minority, and since those computers are at least 
  1357. three years old, they probably don't buy much software anymore.
  1358.  
  1359. The exception is of course the lower educational market; nobody ever 
  1360. spends enough money on educating the coming generation.
  1361.  
  1362. Cheers,
  1363.  
  1364.                     / h+
  1365.  
  1366. --
  1367.   Jon W‰tte
  1368.   Hagagatan 1
  1369.   113 48 Stockholm
  1370.   Sweden
  1371.  
  1372.  
  1373. +++++++++++++++++++++++++++
  1374.  
  1375. >From zobkiw@datawatch.com (joe zobkiw)
  1376. Date: Thu, 4 Aug 1994 15:13:35 GMT
  1377. Organization: Datawatch Corporation
  1378.  
  1379. Even if your app doesn't REQUIRE AppleEvents, PPCToolbox, QuickTime, etc.
  1380. I would say don't waste your time supporting System 6. I am currently
  1381. working on a commercial project that must support System 6 and it stinks.
  1382. You can't use the cool icon utilities, can't use the new standard file
  1383. routines, can't tail patch safely, can't depend on color QuickDraw, can't
  1384. use the the nice auto-positioning features of the Window Manager.
  1385.  
  1386. Supporting System 6 consists of carrying a lot of extra baggage - in the
  1387. form of code. Ever date someone who has a lot of extra emotional baggage?
  1388. It's a _very_ similar experience!
  1389.  
  1390. ___________________________________________________________
  1391. _/_/_/_/   Joe Zobkiw                                   ,,,
  1392.     _/     Senior Software Engineer                     - -
  1393.   _/       Datawatch Corporation                         L
  1394. _/_/_/_/   zobkiw@datawatch.com                          -
  1395. How can one expect to program without buying a single IM?
  1396.  
  1397. +++++++++++++++++++++++++++
  1398.  
  1399. >From Jeff Abrahamson <Jeff@purple.com>
  1400. Date: Thu, 04 Aug 94 10:20:40 -0500
  1401. Organization: Purple
  1402.  
  1403.  
  1404. In article <31ok39$sth@nwfocus.wa.com>, Brian L. Matthews writes:
  1405.  
  1406. > However, whatever you assume about the target machine, make sure your
  1407. > software tests your assumptions at run time and reacts gracefully if they're
  1408. > wrong.
  1409.  
  1410. I agree. However, some problems arise:
  1411.  
  1412. - I compile for a 68020, but the user has but a 68000. Unless I'm using MPW, I don't know how to 
  1413. compile just a single segment for 68000 and the rest for 68020.
  1414.  
  1415. - I compile for 68881, but the user doesn't have a 68881. Same problem as above. Note that PPC's 
  1416. crash when you make 68881 calls, so it's not just a low-end-only problem.
  1417.  
  1418. Standard Disclaimer: Of course, these may be easily solved problems to which I simply don't know the 
  1419. answers.
  1420.  
  1421.  
  1422. -Jeff Abrahamson
  1423.  PDI
  1424.  
  1425. +++++++++++++++++++++++++++
  1426.  
  1427. >From Kevin.R.Boyce@gsfc.nasa.gov (Kevin R. Boyce)
  1428. Date: Thu, 04 Aug 1994 13:24:23 -0400
  1429. Organization: NASA/GSFC
  1430.  
  1431. In article <94080410204000115@purple.com>,
  1432.  clio!jeff@vu-vlsi.ee.vill.edu wrote:
  1433.  
  1434. >In article <31ok39$sth@nwfocus.wa.com>, Brian L. Matthews writes:
  1435. >
  1436. >> However, whatever you assume about the target machine, make sure your
  1437. >> software tests your assumptions at run time and reacts gracefully if they're
  1438. >> wrong.
  1439. >
  1440. >I agree. However, some problems arise:
  1441. >
  1442. >- I compile for a 68020, but the user has but a 68000. Unless I'm using
  1443. >MPW, I don't know how to compile just a single segment for 68000 and the
  1444. >rest for 68020.
  1445.  
  1446. Metrowerks I don't know from (yet), but for Think C:
  1447.  
  1448. #pragma options( mc68020, mc68881 )
  1449.  
  1450. to turn them on,
  1451.  
  1452. #pragma options( !mc68020, !mc68881 )
  1453.  
  1454. to turn them off.   See pp. 322ff in the TC6 manual.
  1455.  
  1456. BTW, it would be nice if you used shorter lines in your posts. 
  1457. Newswatcher couldn't clean it up; I had to shlep all the way over to
  1458. BBEdit.  :-)
  1459. -- 
  1460. Kevin      Kevin.R.Boyce@gsfc.nasa.gov
  1461. Goodbye Clipper chip, hello asteroid Zappa.  Is this a great country or what?
  1462.  
  1463. +++++++++++++++++++++++++++
  1464.  
  1465. >From pcastine@jake.prz.tu-berlin.de (Peter Castine)
  1466. Date: Thu, 4 Aug 1994 19:08:29 GMT
  1467. Organization: PRZ TU-Berlin
  1468.  
  1469. marshall@cais.com (Preston Marshall) writes:
  1470. >I sent E-mail to Apple developer services once suggesting that they
  1471. >periodically publish their estimates as to "what was out there" in terms
  1472. >of systems and OS's.  They must have a guess as to how many plusses, SE's
  1473. >or even IIfx's are stil active and being used.  
  1474. >
  1475.  
  1476. If you're a registered developer, you get Apple Direct. They have published
  1477. figures from time to time Re: numbers of various Machines and OS Versions
  1478. out there in userland. Sorry, don't have one here to quote off hand.
  1479.  
  1480. -- 
  1481. Peter Castine               | Oh, wenn jene alten, musikkundigen Gelehrten die
  1482. pcastine@prz.tu-berlin.de   | Modernen hoerten, was wuerden sie tun, was
  1483. Process Control Center      | wuerden sie sagen!
  1484. Technical University Berlin |               -- Jacobus von Luettich (ca. 1330)
  1485.  
  1486. +++++++++++++++++++++++++++
  1487.  
  1488. >From Jens Alfke <jens_alfke@powertalk.apple.com>
  1489. Date: Wed, 3 Aug 1994 20:34:58 GMT
  1490. Organization: Apple Computer
  1491.  
  1492. Jon W{tte, h+@nada.kth.se writes:
  1493. > However, some things should NOT be demanded. That Virtual Memory be 
  1494. > off is an _evil_ thing, especially on PowerPCs where system 
  1495. > performance is BETTER with VM on, as long as your swap file just 
  1496. > covers your RAM and another meg or two.
  1497.  
  1498. Is that true for you? I turned VM on on my 7100 and gave it 1 more MB than I
  1499. have physical RAM, and still it made my CodeWarrior compiles a lot slower.
  1500. (During compilation, after every few files I could hear my disk doing a lot
  1501. of VM thrashing...) It was something like a 20% performance penalty, although
  1502. I didn't time it.
  1503.  
  1504. I believe the problem is that since part of the physical RAM is being used to
  1505. store code, it's not available for heaps, so there's really much greater than
  1506. 1MB difference between the virtual and physical memory available for heap
  1507. zones. It's a shame ... guess I'll have to wait until Copland for good VM.
  1508.  
  1509. --Jens Alfke                           jens_alfke@powertalk.apple.com
  1510.                    "A man, a plan, a yam, a can of Spam ... Bananama!"
  1511.  
  1512. +++++++++++++++++++++++++++
  1513.  
  1514. >From Jens Alfke <jens_alfke@powertalk.apple.com>
  1515. Date: Thu, 4 Aug 1994 20:34:16 GMT
  1516. Organization: Apple Computer
  1517.  
  1518. Jeff Abrahamson, Jeff@purple.com writes:
  1519. > - I compile for a 68020, but the user has but a 68000. Unless I'm using
  1520. MPW, I 
  1521. > don't know how to 
  1522. > compile just a single segment for 68000 and the rest for 68020.
  1523.  
  1524. In C/C++, you do this with #pragma statements. Check your development
  1525. system's manual; THINK and CodeWarrior do this differently but both of them
  1526. let you change most of the compile settings via pragmas. I believe Pascal has
  1527. similar stuff.
  1528.  
  1529. > - I compile for 68881, but the user doesn't have a 68881. Same problem as 
  1530. > above. Note that PPC's 
  1531. > crash when you make 68881 calls, so it's not just a low-end-only problem.
  1532.  
  1533. Again, there are pragmas to turn 881 codegen on and off. If you want to run
  1534. with or without an 881 but take advantage of it if it exists, the best thing
  1535. is probably to include two versions of your core math-intensive routines, one
  1536. compiled for 881 and one not. (You can put the two versions in different
  1537. segments, so only one will ever get loaded.) Then call Gestalt at startup to
  1538. check whether you have an 881, and call one routine or the other depending.
  1539. Or if you're megaconcerned about efficiency, at startup set up some procptrs
  1540. to point to one or the other set of routines, and then call the routines
  1541. through the procptrs.
  1542.  
  1543. --Jens Alfke                           jens_alfke@powertalk.apple.com
  1544.                    "A man, a plan, a yam, a can of Spam ... Bananama!"
  1545.  
  1546. +++++++++++++++++++++++++++
  1547.  
  1548. >From ari@world.std.com (Ari I Halberstadt)
  1549. Date: Fri, 5 Aug 1994 09:25:45 GMT
  1550. Organization: The World Public Access UNIX, Brookline, MA
  1551.  
  1552. In article <zobkiw-0408941013350001@zobkiw.datawatch.com>,
  1553. joe zobkiw <zobkiw@datawatch.com> wrote:
  1554. >Even if your app doesn't REQUIRE AppleEvents, PPCToolbox, QuickTime, etc.
  1555. >I would say don't waste your time supporting System 6. I am currently
  1556. >working on a commercial project that must support System 6 and it stinks.
  1557. >You can't use the cool icon utilities, can't use the new standard file
  1558. >routines, can't tail patch safely, can't depend on color QuickDraw, can't
  1559. >use the the nice auto-positioning features of the Window Manager.
  1560.  
  1561. I don't think tail patching was fully authorized with sys-7.0. I think
  1562. the PowerPC sys software was the first to allow tail-patching for all
  1563. patchable traps, and that was due to the way the MMM (mixed-mode
  1564. mangler) calls patches.
  1565.  
  1566. Color QuickDraw is only supported on CPUs 68K and greater, and was
  1567. supported in systems prior to 7.0 on appropriate hardware.
  1568.  
  1569. >How can one expect to program without buying a single IM?
  1570.  
  1571. Buy all of them on the forthcoming CD :-) Regular $100, but if you
  1572. preorder, then it's only $80. You're not charged till it ships, and
  1573. they'll call to confirm that you still want it. MacWorld show special,
  1574. but Addison-Wesley might extend this beyond the show. I think having
  1575. all of NIM on a CD is essential.
  1576.  
  1577. -- 
  1578. Ari Halberstadt                                 ari@world.std.com
  1579. One generation passes away, and another generation comes: but the
  1580. earth abides for ever. -- Ecclesiastes, 1:4.
  1581.  
  1582. +++++++++++++++++++++++++++
  1583.  
  1584. >From ari@world.std.com (Ari I Halberstadt)
  1585. Date: Fri, 5 Aug 1994 09:40:14 GMT
  1586. Organization: The World Public Access UNIX, Brookline, MA
  1587.  
  1588. In article <Cu226y.MLn@world.std.com>,
  1589. Ari I Halberstadt <ari@world.std.com> wrote:
  1590. >Color QuickDraw is only supported on CPUs 68K and greater, and was
  1591. >supported in systems prior to 7.0 on appropriate hardware.
  1592.  
  1593. Ack, I didn't mean 68K or greater, I meant 68020 and later CPUs.
  1594. -- 
  1595. Ari Halberstadt                                 ari@world.std.com
  1596. One generation passes away, and another generation comes: but the
  1597. earth abides for ever. -- Ecclesiastes, 1:4.
  1598.  
  1599. +++++++++++++++++++++++++++
  1600.  
  1601. >From giles@med.cornell.edu (Aaron Giles)
  1602. Date: Fri, 05 Aug 1994 13:36:13 -0400
  1603. Organization: Cornell University Medical College
  1604.  
  1605. In article <1994Aug3.203458.22623@gallant.apple.com>, Jens Alfke
  1606. <jens_alfke@powertalk.apple.com> wrote:
  1607.  
  1608. > Jon W{tte, h+@nada.kth.se writes:
  1609. > > However, some things should NOT be demanded. That Virtual Memory be 
  1610. > > off is an _evil_ thing, especially on PowerPCs where system 
  1611. > > performance is BETTER with VM on, as long as your swap file just 
  1612. > > covers your RAM and another meg or two.
  1613. > Is that true for you? I turned VM on on my 7100 and gave it 1 more MB than I
  1614. > have physical RAM, and still it made my CodeWarrior compiles a lot slower.
  1615. > (During compilation, after every few files I could hear my disk doing a lot
  1616. > of VM thrashing...) It was something like a 20% performance penalty, although
  1617. > I didn't time it.
  1618.  
  1619. I think CW uses temporary memory during compiles, which will cause
  1620. thrashing in the system heap, where your extra 1MB is probably hanging
  1621. out.  I really really wish Apple would let you set your VM to exactly your
  1622. system memory, so that you can get file mapping without fear of trashing
  1623. in the extra 1MB.  I tried hacking the system file to set VM down to
  1624. exactly equal to my physical memory, but it wasn't too happy after that.
  1625. :-)
  1626.  
  1627. Aaron
  1628. -- 
  1629. Aaron Giles (giles@med.cornell.edu)
  1630. Power Macintosh Developer, Cornell University Medical College
  1631. JPEGView home page: http://www.med.cornell.edu/jpegview.html
  1632. JPEGView FTP site:   ftp://ftp.med.cornell.edu/pub/aarong/jpegview/
  1633.  
  1634. +++++++++++++++++++++++++++
  1635.  
  1636. >From gurgle@dnai.com (Pete Gontier)
  1637. Date: Fri, 05 Aug 1994 11:02:43 -0800
  1638. Organization: Integer Poet Software
  1639.  
  1640. In article <zobkiw-0408941013350001@zobkiw.datawatch.com>,
  1641. zobkiw@datawatch.com (joe zobkiw) wrote:
  1642.  
  1643. > I am currently working on a commercial project that must support System 6
  1644. > and it stinks... You can't ... depend on color QuickDraw...
  1645.  
  1646. You can't depend on Color QuickDraw even under System 7.
  1647.  
  1648. -- 
  1649.  Pete Gontier // CTO, Integer Poet Software // gurgle@dnai.com
  1650.  
  1651.  "Clear-cutting removes all trees... to create new habitats for
  1652.  wildlife. P&G uses this economically and environmentally sound
  1653.  method because it most closely mimics nature's own processes.
  1654.  Clear-cutting also opens the floor to sunshine, thus stimulating
  1655.  growth and providing food for animals."
  1656.     -- Procter & Gamble's "Decision Earth" free school curriculum
  1657.  
  1658. +++++++++++++++++++++++++++
  1659.  
  1660. >From wdh@netcom.com (Bill Hofmann)
  1661. Date: Fri, 5 Aug 1994 18:04:16 GMT
  1662. Organization: Fresh Software
  1663.  
  1664. In article <Cu226y.MLn@world.std.com>, ari@world.std.com (Ari I
  1665. Halberstadt) wrote:
  1666. > I don't think tail patching was fully authorized with sys-7.0. I think
  1667. > the PowerPC sys software was the first to allow tail-patching for all
  1668. > patchable traps, and that was due to the way the MMM (mixed-mode
  1669. > mangler) calls patches.
  1670. Recent threads have discussed that tail patching has been legit with a few
  1671. exceptions (FrontWindow(), apparently, who knows why?) since system 7,
  1672. because of the revised way come-from patches are done by system software.
  1673.  
  1674. -Bill
  1675.  
  1676. -- 
  1677. Bill Hofmann                                   wdh@netcom.com
  1678. Fresh Software and Instructional Design        voice: +1 510 524 0852
  1679. 1640 San Pablo Ave #C, Berkeley CA 94702 USA   fax:   +1 510 524 0853
  1680.  
  1681. +++++++++++++++++++++++++++
  1682.  
  1683. >From wdh@netcom.com (Bill Hofmann)
  1684. Date: Fri, 5 Aug 1994 18:16:35 GMT
  1685. Organization: Fresh Software
  1686.  
  1687. In article <nagleCtywvx.Bys@netcom.com>, nagle@netcom.com (John Nagle) wrote:
  1688. > Ola.Montan@malmo.trab.se (Ola Montan) writes:
  1689. > >I'm writing new programs for the Macintosh and I wonder:
  1690. > >- Is it OK today to assume that the user have System 7.0 or later, or do
  1691. > >I have to make it possible to run the program on System 6 or even System
  1692. > >5?
  1693. >       Unless your application is for the educational or game market,
  1694. > forget System 6.  
  1695. I agree: this is the "proper" approach--evaluate your target market, and
  1696. decide based on this.  So for instance, if you're targeting PowerBooks,
  1697. you can ignore sys 6 (unless you're worried about the transitional Kanji
  1698. sys 6 that lots of people in Japan were running prior to system 7.1). 
  1699. Probably at this point, you could ignore system 6 (maybe even 7.0) for
  1700. mass market if you're targeting the Performa market.  Don't forget to
  1701. factor in development time: 50% may be running  7.5 by the time you finish
  1702. :-(.
  1703.  
  1704. Also, where you *don't* have to assume system 7, don't.  You can and
  1705. should use FSSpec's, and the MakeFSSpec call has glue for pre-7 systems. 
  1706. You can wrap portions that are different in 6 vs 7 (HOpen vs FSpOpenDF:
  1707. who names these things?) in a common routine that has consistent calling
  1708. conventions to maintain maximum compatibility.  Other areas like the
  1709. script manager are so different from release to release of system software
  1710. that one could be forgiven for requiring not just 7.0 but 7.1 (the basis
  1711. of NIM, after all).
  1712.  
  1713. Obviously if you're writing a program to do collaboration, you can require
  1714. 7.1 Pro, or if you're writing a GX Print Utility, you can require GX, so
  1715. that gives you license to require all kindsa things.
  1716.  
  1717. I would still test on 68000 Macs, but more as an afterthought.  I've still
  1718. got a Classic at home and an SE with a jet engine fan in the office
  1719. collecting dust, and occasionally give things a try on there.
  1720.  
  1721. -Bill
  1722.  
  1723. -- 
  1724. Bill Hofmann                                   wdh@netcom.com
  1725. Fresh Software and Instructional Design        voice: +1 510 524 0852
  1726. 1640 San Pablo Ave #C, Berkeley CA 94702 USA   fax:   +1 510 524 0853
  1727.  
  1728. +++++++++++++++++++++++++++
  1729.  
  1730. >From qsi@cnh.wlink.nl (Peter Kocourek)
  1731. Date: 07 Aug 94 16:54:24 +0200
  1732. Organization: Care Net Holland
  1733.  
  1734. Bill Hofmann wrote in a message on 05 Aug 94:
  1735.  
  1736.  BH> Probably at this point, you could ignore system 6 (maybe even 
  1737.  BH> 7.0) for mass market if you're targeting the Performa market. 
  1738.  BH> Don't forget to factor in development time: 50% may be running 
  1739.  BH> 7.5 by the time you finish :-(.
  1740.  
  1741. Considering Apple's idiotic pricing of 7.5, I don't think you should be too
  1742. worried about many users running it. :-/
  1743.  
  1744.  
  1745. YHS:QSI!
  1746.  
  1747. +++++++++++++++++++++++++++
  1748.  
  1749. >From mason@cis.umassd.edu (Mason Bliss)
  1750. Date: Wed, 10 Aug 1994 02:41:11 GMT
  1751. Organization: University of Massachusetts Dartmouth
  1752.  
  1753. In <80b_9408080302@cnh.wlink.nl> qsi@cnh.wlink.nl (Peter Kocourek) writes:
  1754.  
  1755. >Considering Apple's idiotic pricing of 7.5, I don't think you should be too
  1756. >worried about many users running it. :-/
  1757.  
  1758. Heh. Oh, come on! I *want* to go out and spend big bucks so that my system
  1759. disks will install all the stuff I've FTPed *for* me.
  1760.  
  1761. I may be missing something, but it doesn't look like 7.5 has anything terribly
  1762. significant in it. It looks more akin to the jump from 7.0 to 7.5, where we
  1763. could spend all kinds of money to have a fonts folder.
  1764.  
  1765. My preference is this: Write for 7.0. Don't go out of your way to make things
  1766. incompatible with System 6. If you can be compatible with System 6, great, but
  1767. if not, don't worry about it.
  1768.  
  1769. -- 
  1770. Mason L. Bliss  -  mason@acheron.middleboro.ma.us  -  mason@cis.umassd.edu
  1771.  "What diabolical chicken stepped on your forehead and sat on your chin?"
  1772.  
  1773. +++++++++++++++++++++++++++
  1774.  
  1775. >From gurgle@dnai.com (Pete Gontier)
  1776. Date: Tue, 09 Aug 1994 20:19:53 -0800
  1777. Organization: Integer Poet Software
  1778.  
  1779. In article <Cu226y.MLn@world.std.com>, ari@world.std.com (Ari I
  1780. Halberstadt) wrote:
  1781.  
  1782. > I don't think tail patching was fully authorized with sys-7.0.
  1783.  
  1784. Yes, it was, other than FrontWindow or FindWindow or some other call that
  1785. starts with 'F' and ends with 'Window'. :-) I'd be surprised if there were
  1786. an official Apple document with a specific announcement, but Apple
  1787. employees, indeed, Blue Meanies, have posted repeatedly here that this is
  1788. the case.
  1789.  
  1790. -- 
  1791.  Pete Gontier // CTO, Integer Poet Software // gurgle@dnai.com
  1792.  
  1793.  "I am Homer of Borg! Prepare to be... Ooooooo! Donuts!"
  1794.  
  1795. +++++++++++++++++++++++++++
  1796.  
  1797. >From alexr@apple.com (Alexander M. Rosenberg)
  1798. Date: Wed, 10 Aug 1994 19:06:51 GMT
  1799. Organization: Hackers Anonymous
  1800.  
  1801. In article <gurgle-0908942019530001@gurgle.dnai.com>, gurgle@dnai.com
  1802. (Pete Gontier) wrote:
  1803.  
  1804. > In article <Cu226y.MLn@world.std.com>, ari@world.std.com (Ari I
  1805. > Halberstadt) wrote:
  1806. > > I don't think tail patching was fully authorized with sys-7.0.
  1807. > Yes, it was, other than FrontWindow or FindWindow or some other call that
  1808. > starts with 'F' and ends with 'Window'. :-) I'd be surprised if there were
  1809. > an official Apple document with a specific announcement, but Apple
  1810. > employees, indeed, Blue Meanies, have posted repeatedly here that this is
  1811. > the case.
  1812.  
  1813. And I believe that Inside Mac: Operating System Utilities even states this.
  1814.  
  1815. - -------------------------------------------------------------------------
  1816. -  Alexander M. Rosenberg  - INTERNET: alexr@apple.com      - Yoyodyne    -
  1817. -  330 Waverley St., Apt B - UUCP:ucbvax!apple!alexr        - Propulsion  -
  1818. -  Palo Alto, CA 94301     -                                - Systems     -
  1819. -  (415) 329-8463          - Nobody is my employer so       - :-)         -
  1820. -  (408) 974-3110          - nobody cares what I say.       -             -
  1821.  
  1822. +++++++++++++++++++++++++++
  1823.  
  1824. >From qsi@cnh.wlink.nl (Peter Kocourek)
  1825. Date: 11 Aug 94 15:37:07 +0200
  1826. Organization: Care Net Holland
  1827.  
  1828. Mason Bliss wrote in a message on 10 Aug 94:
  1829.  
  1830.  MB> In <80b_9408080302@cnh.wlink.nl> qsi@cnh.wlink.nl (Peter Kocourek) 
  1831.  MB> writes: 
  1832.  
  1833. >Considering Apple's idiotic pricing of 7.5, I don't think you should be too
  1834. >worried about many users running it. :-/
  1835.  
  1836.  MB>  Heh. Oh, come on! I *want* to go out and spend big bucks so 
  1837.  MB> that my system disks will install all the stuff I've FTPed 
  1838.  MB> *for* me. 
  1839.  MB> I may be missing something, but it doesn't look like 7.5 has 
  1840.  MB> anything terribly significant in it. It looks more akin to 
  1841.  MB> the jump from 7.0 to 7.5, where we could spend all kinds of 
  1842.  MB> money to have a fonts folder. 
  1843.  
  1844. This is not entirely fair: System 7.5 does come with QuickDraw GX and
  1845. PowerTalk. Some people will find these enhancements valuable, although
  1846. personally, I probably won't be using either of them. The question is, whether
  1847. the $140 Apple wants to charge for the update is reasonable. I don't happen to
  1848. think so, even if I had a use for GX.
  1849.  
  1850. It is clear that GX is a substantial achievement, and its development cost
  1851. Apple a lot of money. I also understand that Apple wants to offset the
  1852. developments costs. However, I don't this is the best way of going about it.
  1853. The ultimate success of new technologies will be determined by how widely they
  1854. are adopted by users and developers. Developers are less likely to support
  1855. Apple's cool new technologies, if the installed user base is small.
  1856.  
  1857. I think the $140 (or $99 street) would be more reasonable for a more
  1858. substantial upgrade, like Copland.
  1859.  
  1860.  MB> My preference is this: Write for 7.0. Don't go out of your 
  1861.  MB> way to make things incompatible with System 6. If you can be 
  1862.  MB> compatible with System 6, great, but if not, don't worry about 
  1863.  MB> it. 
  1864.  
  1865. I don't support System 6 any longer in new programs I write. Maintaining older
  1866. programs, I keep the System 6 stuff in. As for supporting post-7.0 features, I
  1867. implement them based on how much work it is, and how much demand there is for
  1868. them.
  1869.  
  1870.  
  1871. YHS:QSI!
  1872.  
  1873. +++++++++++++++++++++++++++
  1874.  
  1875. >From ingemar@lysator.liu.se (Ingemar Ragnemalm)
  1876. Date: 19 Aug 1994 21:27:13 GMT
  1877. Organization: (none)
  1878.  
  1879. Ola.Montan@malmo.trab.se (Ola Montan) writes:
  1880.  
  1881. >I'm writing new programs for the Macintosh and I wonder:
  1882.  
  1883. >- Is it OK today to assume that the user have System 7.0 or later, or do
  1884. >I have to make it possible to run the program on System 6 or even System 5?
  1885.  
  1886. Forget System 5. If you can make your program run on it, well, good, but that
  1887. is like paiting the back of the drawers - you know you did a great job, but
  1888. few will care.
  1889.  
  1890. System 6.0.7 is the lowest system that is interesting to support. If you
  1891. should, depends on the users. Many low-end users use System 6, especially
  1892. those on slow Macs like MacPlus, or Macs with little memory.
  1893.  
  1894. Extreme case of needing System 6: Networked games! If you make a networked
  1895. game, try to support both System 6 and non-color-QuickDraw. Many long-time
  1896. Mac users have two Macs, and one of them might be an old Plus or SE.
  1897.  
  1898. If your program is color only, there is a smaller population who will want
  1899. System 6. Not none at all, but making it work in b/w (esp non-color QD)
  1900. is more important.
  1901.  
  1902. And, as someone noted, if you make high-end applications, where most of your
  1903. users use new, high-end Macs, well, who will notice?
  1904.  
  1905. >- If I have to be able to run on System 6, what do I have to think about?
  1906. >All "compatiblity guidelines" tells about what to think about to run in
  1907. >System 7.
  1908.  
  1909. Only use stuff described in IM 1-5. GWorlds can be demanded, at least from
  1910. color users, since they can install it under sys 6. If you can't run System 6
  1911. yourself, you better find someone who do, or you'll never know.
  1912.  
  1913. --
  1914. - -
  1915. Ingemar Ragnemalm, PhD
  1916. Image processing, Mac shareware games
  1917. E-mail address: ingemar@isy.liu.se or ingemar@lysator.liu.se
  1918.  
  1919. +++++++++++++++++++++++++++
  1920.  
  1921. >From quinn@cs.uwa.edu.au (Quinn "The Eskimo!")
  1922. Date: Sun, 21 Aug 1994 15:26:10 +0800
  1923. Organization: Department of Computer Science, The University of Western Australia
  1924.  
  1925. In article <33383h$cm0@newsy.ifm.liu.se>, ingemar@lysator.liu.se (Ingemar
  1926. Ragnemalm) wrote:
  1927.  
  1928. >System 6.0.7 is the lowest system that is interesting to support.
  1929.  
  1930. I disagree.  6.0.5 has most of the features of 6.0.7 (specifically
  1931. _Gestalt) but is a lot more reliable on machines that don't need 6.0.7 (ie
  1932. LC, IIsi).  If you're going to support System 6 you should support back to
  1933. 6.0.5!
  1934. -- 
  1935. Quinn "The Eskimo!"      <quinn@cs.uwa.edu.au>     "Support HAVOC!"
  1936. Department of Computer Science, The University of Western Australia
  1937.  
  1938. +++++++++++++++++++++++++++
  1939.  
  1940. >From kaufman@Xenon.Stanford.EDU (Marc T. Kaufman)
  1941. Date: 22 Aug 1994 03:08:30 GMT
  1942. Organization: Computer Science Department, Stanford University.
  1943.  
  1944. In article <quinn-2108941526100001@edu-dynamic5.educ.ecel.uwa.edu.au>,
  1945. Quinn "The Eskimo!" <quinn@cs.uwa.edu.au> wrote:
  1946. >In article <33383h$cm0@newsy.ifm.liu.se>, ingemar@lysator.liu.se (Ingemar
  1947. >Ragnemalm) wrote:
  1948.  
  1949. ->System 6.0.7 is the lowest system that is interesting to support.
  1950.  
  1951. >I disagree.  6.0.5 has most of the features of 6.0.7 (specifically
  1952. >_Gestalt) but is a lot more reliable on machines that don't need 6.0.7 (ie
  1953. >LC, IIsi).  If you're going to support System 6 you should support back to
  1954. >6.0.5!
  1955.  
  1956. I have one customer who is running 6.0.3, because he likes the Quickdraw
  1957. bug that caused hairlines not to fatten when copied to a larger bitmap.
  1958. He needed that feature to create hairline targets on 35mm slides.  I think
  1959. we can agree not to go back to 4.x, though, can't we?
  1960.  
  1961. Marc
  1962.  
  1963.  
  1964. ---------------------------
  1965.  
  1966. >From h+@nada.kth.se (Jon W{tte)
  1967. Subject: The System 7.5 Think Debugger Bug - and fix!
  1968. Date: Fri, 19 Aug 1994 22:27:29 +0200
  1969. Organization: Royal Institute of Something or other
  1970.  
  1971. As you may now be aware of, there is a bug in Think Debugger 
  1972. and/or System 7.5 that makes the debugger freeze on startup for 
  1973. several kinds of projects.
  1974.  
  1975. It worked in 7.5b5, but not now. Everyone at apple says that 
  1976. nothing changed in the Process Manager between them. The bug, 
  1977. however, DOES depend on Think Debugger calling GetNextEvent in 
  1978. a tight loop, waiting for an app4Evt that doesn't get there.
  1979.  
  1980. This INIT, when installed, patches GetNextEvent to call 
  1981. WaitNextEvent and give 6 in background time, which makes the 
  1982. debugger work once again. Since WaitNextEvent calls 
  1983. GetNextEvent internally, AND process switched happen during 
  1984. WaitNextEvent calls, I have a nice re-entrancy problem which I 
  1985. solve with a linked list of A5 values in the system heap. This 
  1986. list is NOT cleaned up, and consists of nonrelocatable blocks, 
  1987. so use with care! (it doesn't crash, though)
  1988.  
  1989. Source included
  1990.  
  1991. Enjoy,
  1992.  
  1993.                 / h+
  1994.  
  1995. (Pardon the binary posting on this group, but it's SOOO small, 
  1996. important and relevant...)
  1997.  
  1998.  
  1999.  
  2000. --
  2001.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  2002.  
  2003. "TextEdit does everything right."
  2004.     ã Jon W{tte
  2005.  
  2006.  
  2007. +++++++++++++++++++++++++++
  2008.  
  2009. >From tree@bedford.symantec.com (Tom Emerson)
  2010. Date: Sat, 20 Aug 1994 17:15:43 -0800
  2011. Organization: Symantec Development Tools Group
  2012.  
  2013. In article <9668AA7AE251.45173@klkmac004.nada.kth.se>, h+@nada.kth.se (Jon
  2014. W{tte) wrote:
  2015.  
  2016. > As you may now be aware of, there is a bug in Think Debugger 
  2017. > and/or System 7.5 that makes the debugger freeze on startup for 
  2018. > several kinds of projects.
  2019. > It worked in 7.5b5, but not now. Everyone at apple says that 
  2020. > nothing changed in the Process Manager between them. The bug, 
  2021. > however, DOES depend on Think Debugger calling GetNextEvent in 
  2022. > a tight loop, waiting for an app4Evt that doesn't get there.
  2023.  
  2024. Some background on this: the TPM/THINK Debugger IAC worked through 7.5b6.
  2025. >From that point on some change in the new system software broke the
  2026. communications mechanism. The problem only occurs for some projects (one
  2027. commonality is the number of static constructors it contains - we haven't
  2028. seen it with large C applications), and we have yet to determine the exact
  2029. circumstances that cause the problem to appear or what changed in the
  2030. System software to hose it. We've talked to the engineer responsible for
  2031. the Process Manager in 7.5 and he doesn't know what changed either, so
  2032. this is a mystery. The loop that waits on app4Evt's and updateEvts appears
  2033. in both the TPM and Debugger --- which one you hang in depends on who
  2034. initiated the communication.
  2035.  
  2036. > This INIT, when installed, patches GetNextEvent to call 
  2037. > WaitNextEvent and give 6 in background time, which makes the 
  2038. > debugger work once again. Since WaitNextEvent calls 
  2039. [snip]
  2040.  
  2041. This is the fix that we will probably make, though we need to QA more
  2042. before releasing it, and it would be nice to know what actually changed in
  2043. the System to bring about the problem.
  2044.  
  2045.    -tre
  2046.  
  2047. -- 
  2048. Tom Emerson                                              Software Engineer
  2049. Development Tools Group                               Symantec Corporation
  2050.                           tree@bedford.symantec.com
  2051.   "I dreamed I had to take a test, in a Dairy Queen, on another planet."
  2052.  
  2053. +++++++++++++++++++++++++++
  2054.  
  2055. >From stevep@wrq.com (Steve Poole)
  2056. Date: Mon, 22 Aug 1994 10:59:25 -0800
  2057. Organization: Walker Richer & Quinn
  2058.  
  2059. In article <tree-2008941715430001@155.64.60.21>, tree@bedford.symantec.com
  2060. (Tom Emerson) wrote:
  2061.  
  2062. > communications mechanism. The problem only occurs for some projects (one
  2063. > commonality is the number of static constructors it contains - we haven't
  2064. > seen it with large C applications), and we have yet to determine the exact
  2065.  
  2066. I've seen it with large C apps, Tom.
  2067.  
  2068. Steve
  2069.  
  2070. - ------------------------------------------------------------------------
  2071. - Internet: stevep@wrq.com  -  AOL: Spoole  -  INTEL 80x86: Just say NOP -
  2072. - "Nurse! Do let's pretend that I'm a hungry hyaena, and you're a bone!" -
  2073. - ------------------------------------------------------------------------
  2074.  
  2075. ---------------------------
  2076.  
  2077. >From h+@nada.kth.se (Jon W{tte)
  2078. Subject: Think Debugger & INIT source code
  2079. Date: Sun, 21 Aug 1994 16:52:25 +0200
  2080. Organization: Royal Institute of Something or other
  2081.  
  2082. The INIT I sent out a day ago to fix the System 7.5 bug when 
  2083. using the Think Debugger _did_ fix the problem, but it didn't 
  2084. do it by behaving as advertized.
  2085.  
  2086. This is because I patched InitWindows, and from that patch 
  2087. patched GetNextEvent to instead call WaitNextEvent with a sleep 
  2088. time of 6, and added some application referencing stuff in a 
  2089. linked list to kkeep track of re-entry.
  2090.  
  2091. Well, using the patch I did, calling WaitNextEvent would 
  2092. actually result in WaitNextEvent being called twice; once with 
  2093. whatever sleep time was passed to it, and once through my path 
  2094. before it came down to GetNextEvent. Not good.
  2095.  
  2096. HOWEVER - it turns out that the Process Mangler patches out 
  2097. InitWindows so other apps don't get to it, just like with 
  2098. WaitNextEvent and GetNextEvent (which was why I laid the basic 
  2099. patch there initially...) with the exception of the Finder, 
  2100. which calls InitWindows before this patching is done. 
  2101.  
  2102. Straaaange!
  2103.  
  2104. Now, my patch hangs off InitDialogs, which, as it turns out, is 
  2105. a much better place to hang - cheaper brews, cooler people, and 
  2106. not getting patched-out by the Process Mangler. Yet, anyway :-)
  2107.  
  2108. Another complication was that I only used one location to save 
  2109. the old WaitNextEvent globally. Since some apps patch 
  2110. WaitNextEvent themselves, BEFORE they call InitDialogs, this 
  2111. was a bad thing (projects running under the Think Debugger come
  2112. to mind...)
  2113.  
  2114. Now I only patch if the saved address is 0, or the address I
  2115. get from WNE is the same as the saved address, which it turns 
  2116. out to be for the vast majority of applications; even for the 
  2117. Finder (It's surprising that the Finder does ANYTHING like we
  2118. mortals :-)
  2119.  
  2120. Anyway, now this INIT behaves as advertized, and can also serve 
  2121. as example code of how to write a skanky INIT that gets at the 
  2122. WaitNextEvent mechanism and circumvents the Process Manager. In
  2123. pure inline assembly, no less. Code review invited.
  2124.  
  2125. Cheers,
  2126.  
  2127.                 / h+
  2128.                 Jon W{tte
  2129.  
  2130.  
  2131.  
  2132.  
  2133. --
  2134.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  2135.     Not speaking for the Microsoft Corporation.
  2136.  
  2137.  
  2138. ---------------------------
  2139.  
  2140. >From emmayche@apple.com (Mark Hartman)
  2141. Subject: [Q] How to do non-bypassable INIT?
  2142. Date: 11 Aug 1994 17:36:33 -0700
  2143. Organization: Apple Computer Inc, Cupertino, CA
  2144.  
  2145. For security reasons, I need to have an INIT loaded/run at startup whether or
  2146. not the Shift key is held down.  I know that some of the Apple-supplied
  2147. goodies do this; does anyone know what the rules are for what gets loaded
  2148. anyway if Shift is held down?
  2149. -- 
  2150. =======================================================================
  2151. The above is not guaranteed to be the opinions of anyone in particular.
  2152. =======================================================================
  2153. Mark Hartman, N6BMO | E-mail:  emmayche@apple.com | AOL: emmayche
  2154.       Macophile     |  Serious Disney enthusiast  | CIS: 75130,1434
  2155.  
  2156. +++++++++++++++++++++++++++
  2157.  
  2158. >From quinn@cs.uwa.edu.au (Quinn "The Eskimo!")
  2159. Date: Fri, 12 Aug 1994 10:55:34 +0800
  2160. Organization: Department of Computer Science, The University of Western Australia
  2161.  
  2162. In article <32eg6h$edh@apple.com>, emmayche@apple.com (Mark Hartman) wrote:
  2163.  
  2164. >For security reasons, I need to have an INIT loaded/run at startup whether or
  2165. >not the Shift key is held down.  I know that some of the Apple-supplied
  2166. >goodies do this; does anyone know what the rules are for what gets loaded
  2167. >anyway if Shift is held down?
  2168.  
  2169. The only one I know of is System 7 Tuner, which installs an INIT in the
  2170. system file that specifically opens, load and runs the tuna regardless of
  2171. whether the shift key is down.
  2172.  
  2173. Another possible solution is to disable the shift key by deleting the
  2174. 'dbex' resource in the system file.
  2175. -- 
  2176. Quinn "The Eskimo!"      <quinn@cs.uwa.edu.au>     "Support HAVOC!"
  2177. Department of Computer Science, The University of Western Australia
  2178.  
  2179. +++++++++++++++++++++++++++
  2180.  
  2181. >From radixinc@aol.com (RadixInc)
  2182. Date: 12 Aug 1994 01:42:00 -0400
  2183. Organization: America Online, Inc. (1-800-827-6364)
  2184.  
  2185. In article <32eg6h$edh@apple.com>, emmayche@apple.com (Mark Hartman)
  2186. writes:
  2187.  
  2188. "For security reasons, I need to have an INIT loaded/run at startup
  2189. whether or
  2190. not the Shift key is held down.  I know that some of the Apple-supplied
  2191. goodies do this; does anyone know what the rules are for what gets loaded
  2192. anyway if Shift is held down?"
  2193.  
  2194. There is a new INIT type that is loaded regardless of the shift key. Look
  2195. at one of the ones that always loads. I think the file type needs to be
  2196. 'scri', and other than that it's the same (INIT resource, etc.). I haven't
  2197. tested this though, so check it out yourself.
  2198.  
  2199. I hope you aren't writing a virus or something obnoxious...
  2200.  
  2201. Gregory Jorgensen
  2202. Radix Consulting Inc.
  2203.  
  2204. +++++++++++++++++++++++++++
  2205.  
  2206. >From dlb@netcom.com (David Beauchesne)
  2207. Date: Fri, 19 Aug 1994 02:52:08 GMT
  2208. Organization: NETCOM On-line Communication Services (408 261-4700 guest)
  2209.  
  2210. > There is a new INIT type that is loaded regardless of the shift key. Look
  2211. > at one of the ones that always loads. I think the file type needs to be
  2212. > 'scri', and other than that it's the same (INIT resource, etc.). I haven't
  2213. > tested this though, so check it out yourself.
  2214.  
  2215. This is correct.  Type 'scri' is used by Apple to load different
  2216. scripts (languages).  They are treated, (and coded), just like
  2217. 'INIT's, but their loading cannot be stopped with the shift key.
  2218. -- 
  2219. David L. Beauchesne                                    dlb@netcom.com
  2220. Santa Cruz, California, USA
  2221.  
  2222. ---------------------------
  2223.  
  2224. >From khurram@bga.com (Khurram Qureshi)
  2225. Subject: malloc problem in CW-4
  2226. Date: 21 Aug 1994 15:49:55 -0500
  2227. Organization: Real/Time Communications - Bob Gustwick and Associates
  2228.  
  2229. There is a problem with malloc/realloc problem which exists in CW/4. Typically
  2230. this surfaces when performing continuous memory allocations (inside a for loop
  2231. for example). This will be fixed as soon as possible.
  2232.  
  2233. Thanks.
  2234.  
  2235. ==============================
  2236. Khurram Qureshi
  2237. Metrowerks Technical Support
  2238. e-mail: khurram@bga.com
  2239. ==============================
  2240.  
  2241. ---------------------------
  2242.  
  2243. End of C.S.M.P. Digest
  2244. **********************
  2245.  
  2246. ˇ